#include "Key.h"
#include "Delay.h"
#include "stm32f10x.h"                  // Device header

void Key_Init(void){
    GPIO_InitTypeDef GPIO_InitStruct;
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;
    GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_3|GPIO_Pin_15|GPIO_Pin_12;
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
    GPIO_Init(GPIOB, &GPIO_InitStruct);
    
}

uint8_t Get_Key(void){
    uint8_t val = 0;
    
    if(0 == GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_5)){
        Delay_ms(20);
        while(0 == GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_5));
        Delay_ms(20);
        val = 1;
    }
    
    if(0 == GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_3)){
        Delay_ms(20);
        while(0 == GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_3));
        Delay_ms(20);
        val = 2;
    }
     
    if(0 == GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_15)){
        Delay_ms(20);
        while(0 == GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_15));
        Delay_ms(20);
        val = 3;
    }
       
    if(0 == GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_12)){
        Delay_ms(20);
        while(0 == GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_12));
        Delay_ms(20);
        val = 4;
    }
    
    return val;
}
